window: Use dispose instead of destroy
authorMatthias Clasen <mclasen@redhat.com>
Tue, 5 May 2020 20:51:24 +0000 (16:51 -0400)
committerMatthias Clasen <mclasen@redhat.com>
Tue, 5 May 2020 22:23:54 +0000 (18:23 -0400)
The destroy vfunc is going away.

gtk/gtkwindow.c

index eedbabd17c6d198ff8c36001399e118918f742f1..a5f25837b4f3c4af22146bde71315d87141a77a1 100644 (file)
@@ -366,7 +366,6 @@ struct _GtkWindowGeometryInfo
 static void gtk_window_constructed        (GObject           *object);
 static void gtk_window_dispose            (GObject           *object);
 static void gtk_window_finalize           (GObject           *object);
-static void gtk_window_destroy            (GtkWidget         *widget);
 static void gtk_window_show               (GtkWidget         *widget);
 static void gtk_window_hide               (GtkWidget         *widget);
 static void gtk_window_map                (GtkWidget         *widget);
@@ -501,6 +500,8 @@ static GdkToplevelLayout * gtk_window_compute_layout (GtkWindow *window,
                                                       int        min_width,
                                                       int        min_height);
 
+static void gtk_window_release_application (GtkWindow *window);
+
 static GListStore  *toplevel_list = NULL;
 static guint        window_signals[LAST_SIGNAL] = { 0 };
 static gchar       *default_icon_name = NULL;
@@ -757,7 +758,6 @@ gtk_window_class_init (GtkWindowClass *klass)
   gobject_class->set_property = gtk_window_set_property;
   gobject_class->get_property = gtk_window_get_property;
 
-  widget_class->destroy = gtk_window_destroy;
   widget_class->show = gtk_window_show;
   widget_class->hide = gtk_window_hide;
   widget_class->map = gtk_window_map;
@@ -2635,6 +2635,35 @@ gtk_window_dispose (GObject *object)
 {
   GtkWindow *window = GTK_WINDOW (object);
   GtkWindowPrivate *priv = gtk_window_get_instance_private (window);
+  guint i;
+
+  gtk_window_release_application (window);
+
+  for (i = 0; i < g_list_model_get_n_items (G_LIST_MODEL (toplevel_list)); i++)
+    {
+      gpointer item = g_list_model_get_item (G_LIST_MODEL (toplevel_list), i);
+      if (item == window)
+        {
+          g_list_store_remove (toplevel_list, i);
+          break;
+        }
+      else
+        g_object_unref (item);
+    }
+
+  if (priv->transient_parent)
+    gtk_window_set_transient_for (window, NULL);
+
+  remove_attach_widget (window);
+
+  if (priv->has_user_ref_count)
+    {
+      priv->has_user_ref_count = FALSE;
+      g_object_unref (window);
+    }
+
+  if (priv->group)
+    gtk_window_group_remove_window (priv->group, window);
 
   g_list_free_full (priv->foci, (GDestroyNotify) gtk_pointer_focus_unref);
   priv->foci = NULL;
@@ -4002,44 +4031,6 @@ gtk_window_get_size (GtkWindow *window,
     *height = h;
 }
 
-static void
-gtk_window_destroy (GtkWidget *widget)
-{
-  GtkWindow *window = GTK_WINDOW (widget);
-  GtkWindowPrivate *priv = gtk_window_get_instance_private (window);
-  guint i;
-
-  gtk_window_release_application (window);
-
-  for (i = 0; i < g_list_model_get_n_items (G_LIST_MODEL (toplevel_list)); i++)
-    {
-      gpointer item = g_list_model_get_item (G_LIST_MODEL (toplevel_list), i);
-      if (item == window)
-        {
-          g_list_store_remove (toplevel_list, i);
-          break;
-        }
-      else
-        g_object_unref (item);
-    }
-
-  if (priv->transient_parent)
-    gtk_window_set_transient_for (window, NULL);
-
-  remove_attach_widget (window);
-
-  if (priv->has_user_ref_count)
-    {
-      priv->has_user_ref_count = FALSE;
-      g_object_unref (window);
-    }
-
-  if (priv->group)
-    gtk_window_group_remove_window (priv->group, window);
-
-  GTK_WIDGET_CLASS (gtk_window_parent_class)->destroy (widget);
-}
-
 static gboolean
 gtk_window_close_request (GtkWindow *window)
 {